using System.Drawing;

namespace DslCrossModelFramework {
    public interface IModelFile : System.IEquatable<IModelFile>, System.IEquatable<string> {
        /// <summary>
        /// Gets the name of the model.
        /// </summary>
        string Name { get; }

        /// <summary>
        /// Gets the contents of the DSL model file.
        /// </summary>
        /// <returns></returns>
        string GetContents();

        /// <summary>
        /// Gets the owning assembly.
        /// </summary>
        /// <value>The owning assembly.</value>
        string OwningAssembly { get; }

        /// <summary>
        /// Gets the unique model file reference.
        /// </summary>
        /// <value>The unique model file reference.</value>
        string UniqueModelFileReference { get; }

        Image GetContainerIcon();

        string DslPackageId { get; }

        string LocalFilePath { get; }

        /// <summary>
        /// Gets a value indicating whether this instance is dirty.
        /// </summary>
        /// <value><c>true</c> if this instance is dirty; otherwise, <c>false</c>.</value>
        bool IsDirty { get; }
    }
}